package com.hung.service;

import com.hung.entity.PageBean;
import com.hung.entity.Report;
import com.hung.pojo.Matter;

import java.util.List;

/**
 * 事件Service层
 *
 * @author Hung
 */
public interface MatterService {

    /**
     * 根据页数查询对应数据
     *
     * @param currentPage
     * @param rows
     * @param condition
     * @param pid
     * @return
     */
    PageBean<Matter> findDataOnPage(String currentPage, String rows, String condition, Integer pid);

    /**
     * 根据mid获取事件详细信息
     *
     * @param mid
     * @return
     */
    Matter queryMatterById(Integer mid);

    /**
     * 添加事件
     *
     * @param matter
     * @return
     */
    boolean addMatter(Matter matter);

    /**
     * 根据uid和rid查看是否点赞
     *
     * @param uid
     * @param mid
     * @return
     */
    boolean isPraise(Integer uid, Integer mid);

    /**
     * 根据uid和rid查看是否收藏
     *
     * @param uid
     * @param mid
     * @return
     */
    boolean isCollected(Integer uid, Integer mid);

    /**
     * 点赞
     *
     * @param uid
     * @param mid
     * @return
     */
    boolean praise(Integer uid, Integer mid);

    /**
     * 收藏
     *
     * @param uid
     * @param mid
     * @return
     */
    boolean favorite(Integer uid, Integer mid);

    /**
     * 取消
     *
     * @param uid
     * @param mid
     * @return
     */
    boolean cancelPraise(Integer uid, Integer mid);

    /**
     * 取消
     *
     * @param uid
     * @param mid
     * @return
     */
    boolean cancelFavorite(Integer uid, Integer mid);

    /**
     * 举报
     *
     * @param mid
     * @param pid
     * @return
     */
    boolean report(Integer mid, Integer pid);

    /**
     * 查询所有举报
     *
     * @return
     */
    List<Report> queryReports();

    /**
     * 根据mid删除事件
     *
     * @param mid
     * @return
     */
    boolean deleteMatterById(Integer mid);

    /**
     * 根据uid查询赞过的事件
     *
     * @param uid
     * @return
     */
    List<Matter> queryPraiseById(Integer uid);

    /**
     * 根据uid查询收藏过的事件
     *
     * @param uid
     * @return
     */
    List<Matter> queryFavoriteById(Integer uid);

    /**
     * 删除举报
     * @param id
     * @return
     */
    Boolean deleteReport(Integer id);
}
